Applications can tolerate memory faults to a certain extent before being disrupted abruptly. Permanent and transient faults may occur during an execution of an application. A permanent fault is typically defined as a fault that is persistent and does not disappear when the application is powered off. Permanent faults are typically caused by physical defects of the memory. A transient fault is a fault that occurs during execution of the application and disappears when the application is powered off. Transient faults are typically caused by changes of data values without a physical defect of the memory, and may occur as a result of environmental conditions.
Typically, transient faults occur much more frequently than permanent faults and are a result of the memory developing the faults over a period of usage. In the presence of error correction mechanisms, the applications may need to know the extent of such faults to assess the severity of the physical defects of the memory. One application may be for a memory used in an automobile, for example.